home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 24 / AMIGAplus Sonderheft 24 (2000)(Falke)(DE)[!].iso / PublicDomain / Anwendungen / MT-RechnungIII / Rexx / FWInventurerfas.storexx < prev    next >
Text File  |  1999-01-17  |  3KB  |  172 lines

  1. /*
  2. ** Druck-, Vorschau, Sichern der Inventurerfassungsliste mit Hilfe von FinalWriter
  3. ** $VER: FWInventurerfas.storexx V1.00 (17.01.99)
  4. */
  5.  
  6. PARSE ARG ARexxPort;
  7.  
  8. ADDRESS VALUE ARexxPort;
  9. OPTIONS RESULTS;
  10.  
  11. FWVorlage    = "FWDokumente/Inventurerfassung.fw";
  12. FWDokument    = "t:Inventurerfassung.fw";
  13. FWPort        = "FINALW.";
  14.  
  15. LF                    = '0a'x;                            /* Zeilenvorschub                */
  16.  
  17. Gefunden = 0;
  18. DO i = 1 TO 20 WHILE(Gefunden = 0)
  19.     IF show(ports, (FWPort || i)) THEN
  20.         DO;
  21.             Gefunden = 1;
  22.             FWPort = FWPort || i;
  23.         END;
  24. END;
  25.  
  26. IF Gefunden = 0 THEN
  27.     DO;
  28.         ES_TITLE                = "Warnung";
  29.         ES_TEXTFORMAT        = "FinalWriter ist nicht aktiv, bitte starten sie dieses" || LF || "und versuchen Sie es erneut";
  30.         ES_GADGETFORMAT    = "Abbrechen";
  31.         EASY_REQUEST;
  32.         EXIT;
  33.     END;
  34.  
  35. /* Original FW-Dokument nach t: kopieren, um ein versehentliches überschreiben */
  36. /* dieser Vorlage zu verhindern */
  37. GET_REXXPATH;
  38. FWVorlage        = MTR_RESULT || FWVorlage;
  39. ADDRESS COMMAND "copy" FWVorlage FWDokument;
  40.  
  41. /* Oberfläche sperren */
  42. LOCKGUI;
  43.  
  44. /* Art ermitteln: 0 = Drucken, 1 = Vorschau, 2 = Speichern */
  45. PRINTSTATE;
  46. Druckart = MTR_RESULT;
  47.  
  48. Ende_Kennzeichen = 'N';
  49.  
  50. /* Suchen der zu druckenden Daten */
  51. GET_PREFS;
  52. PRINTFIND;
  53.  
  54. DO WHILE( MTR_RESULT > 0 & Ende_Kennzeichen = 'N');
  55.     ADDRESS VALUE FWPort;
  56.  
  57.     CALL DatenAufbereiten;
  58.     SELECT;
  59.         WHEN Druckart = 0 THEN    /* Drucken    */
  60.             DO;
  61.                 ADDRESS VALUE FWPort;
  62.                 PRINT;
  63.                 ADDRESS VALUE ARexxPort;
  64.                 MTSCREENTOFRONT;
  65.             END;
  66.         WHEN Druckart = 1 THEN    /* Vorschau    */
  67.             ADDRESS VALUE ARexxPort;
  68.         WHEN Druckart = 2 THEN    /* Sichern    */
  69.             DO;
  70.                 ADDRESS VALUE FWPort;
  71.                 SAVEAS;
  72.                 ADDRESS VALUE ARexxPort;
  73.                 MTSCREENTOFRONT;
  74.             END;
  75.         OTHERWISE
  76.             DO;
  77.                 ES_TITLE                = "Warnung";
  78.                 ES_TEXTFORMAT        = "Druckart wird nicht unterstützt!";
  79.                 ES_GADGETFORMAT    = "Ok";
  80.                 EASY_REQUEST;
  81.                 Ende_Kennzeichen    = 'J';
  82.             END;
  83.     END;
  84.  
  85.     PRINTFIND;
  86. END;
  87.  
  88. /* FinalWriter-Datei aus t: wieder entfernen */
  89. ADDRESS COMMAND "delete" FWDokument;
  90.  
  91. /* Oberfläche wieder entsperren */
  92. ADDRESS VALUE ARexxPort;
  93. FREEGUI;
  94.  
  95. EXIT;
  96.  
  97. DatenAufbereiten:
  98.  
  99.     ADDRESS VALUE FWPort;
  100.     CLEARDOC;
  101.     OPEN FWDokument;
  102.  
  103.     FIND "<NR>";
  104.     FINDNEXT;
  105.     STATUS LinePos;
  106.     PARSE VAR RESULT BegLine BegPosition EndLine EndPosition;
  107.     MoveToLine BegLine 0;
  108.     ShiftDown;
  109.     MoveToLine (BegLine + 1) 0;
  110.     ShiftUp;
  111.     CUT;
  112.  
  113.     DO i = 0 TO (ST.ARTICLE_COUNT - 1);
  114.  
  115.         ADDRESS VALUE ARexxPort;
  116.  
  117.         GET_ARTICLE ST.ARTICLE_NUMBER.i;
  118.  
  119.         SELECT;
  120.             WHEN PREFS.OUTBILL_ART = 0 THEN
  121.                 DO;
  122.                     IF PREFS.NUMBER_DIGITS > 0 THEN
  123.                         ZW_Nummer = RIGHT( (Copies("0",PREFS.NUMBER_DIGITS) || ST.ARTICLE_NUMBER.i), PREFS.NUMBER_DIGITS );
  124.                     ELSE
  125.                         ZW_Nummer = ST.ARTICLE_NUMBER.i;
  126.                 END;
  127.             WHEN PREFS.OUTBILL_ART = 1 THEN
  128.                 DO;
  129.                     ZW_Nummer = ARTICLE.EAN;
  130.                 END;
  131.             OTHERWISE
  132.                 DO;
  133.                     ZW_Nummer = ARTICLE.NUMBER2;
  134.                 END;
  135.         END;
  136.  
  137.         FORMAT_NUMBER ST.ARTICLE_STOCK_SYSTEM.i PREFS.FRAC_DIGITS;
  138.         ZW_Bestand        = MTR_RESULT;
  139.  
  140.         ADDRESS VALUE FWPort;
  141.         PASTE;
  142.  
  143.         IF BegLine > 2 THEN
  144.             MoveToLine (BegLine - 2) 0;
  145.         ELSE
  146.             MoveToLine 1 0;
  147.         FIND "<NR>";
  148.         STATUS LinePos;
  149.         PARSE VAR RESULT BegLine BegPosition EndLine EndPosition;
  150.  
  151.         IF ZW_Nummer = "" THEN
  152.             TYPE " ";
  153.         ELSE
  154.             TYPE ZW_Nummer;
  155.  
  156.         FIND "<ARTICLE_NAME>";
  157.         IF ARTICLE.DESCRIPTION = "" THEN
  158.             TYPE " ";
  159.         ELSE
  160.             TYPE ARTICLE.DESCRIPTION;
  161.  
  162.         FIND "<STOCK_S>"
  163.         TYPE ZW_Bestand;
  164.  
  165.         MoveToLine (BegLine + 1) 0;
  166.  
  167.         ADDRESS VALUE ARexxPort;
  168.         PRINTFIND;
  169.     END;
  170. RETURN;
  171.  
  172.